<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Ananas Library: Класс aARegister</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Создано системой Doxygen 1.5.6 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Титульная&nbsp;страница</span></a></li>
      <li class="current"><a href="annotated.html"><span>Классы</span></a></li>
      <li><a href="files.html"><span>Файлы</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Классы</span></a></li>
      <li><a href="hierarchy.html"><span>Иерархия&nbsp;классов</span></a></li>
      <li><a href="functions.html"><span>Члены&nbsp;классов</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Класс aARegister</h1><!-- doxytag: class="aARegister" --><!-- doxytag: inherits="aIRegister" -->Класс <a class="el" href="classaARegister.html" title="Класс aARegister определяет программный интерфейс...">aARegister</a> определяет программный интерфейс Накопительных регистров. Наследует <a class="el" href="classaIRegister.html" title="Класс aIRegister определяет программный интерфейс...">aIRegister</a>.  
<a href="#_details">Подробнее...</a>
<p>
<code>#include &lt;<a class="el" href="aaregister_8h-source.html">aaregister.h</a>&gt;</code>
<p>
<div class="dynheader">
Граф наследования:aARegister:</div>
<div class="dynsection">

<p><center><img src="classaARegister.png" usemap="#aARegister_map" border="0" alt=""></center>
<map name="aARegister_map">
<area href="classaIRegister.html" alt="aIRegister" shape="rect" coords="0,56,74,80">
<area href="classaObject.html" alt="aObject" shape="rect" coords="0,0,74,24">
</map>
</div>

<p>
<a href="classaARegister-members.html">Полный список членов класса</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Открытые слоты</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual ERR_Code&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaARegister.html#b8f37888c1ea2f8957b5fd8e8fc9a93a">New</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Добавляет новую строку к таблице регистра.  <a href="#b8f37888c1ea2f8957b5fd8e8fc9a93a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaARegister.html#7306f279c878bff4b1c158a43ef6445a">Update</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">QVariant&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaARegister.html#8d8775b33b1b3e13a1e32c45fa49d868">getSaldo</a> (const QDateTime &amp;date, const QString &amp;dimfieldname, QVariant dimvalue, const QString &amp;resname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">QVariant&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaARegister.html#26a29b5bd623fe50c7e5499776e48bec">getSaldo</a> (const QString &amp;dateISO, const QString &amp;dimfieldname, QVariant dimvalue, const QString &amp;resname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">QVariant&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaARegister.html#d91ce74807023d6216f923d70af1f0ee">getSaldoByManyDimensions</a> (const QString &amp;from, const QString &amp;to, const QString &amp;dimfieldname, QVariant dimvalue, const QString &amp;resname)</td></tr>

<tr><td colspan="2"><br><h2>Открытые члены</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaARegister.html#4869ad4cddb196fb64e0d21e0876b4f2">aARegister</a> (aCfgItem context, <a class="el" href="classaDatabase.html">aDatabase</a> *adb=0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaARegister.html#b69abbbdeb2081b82c9dda996ec220ac">aARegister</a> (QString name, <a class="el" href="classaDatabase.html">aDatabase</a> *adb=0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaARegister.html#5af43f6c4ed1fb604cb5be37f9dd6f24">~aARegister</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual ERR_Code&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaARegister.html#6d53f11256cedc1dabea57ef788086cb">initObject</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaARegister.html#4e044a76fda2d164139be5c1a2ee6c7b">deleteDocument</a> (<a class="el" href="classaDocument.html">aDocument</a> *doc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a2ddda5391942610c95ce2f79728bc19"></a><!-- doxytag: member="aARegister::trSysName" ref="a2ddda5391942610c95ce2f79728bc19" args="(const QString &amp;sname)" -->
virtual QString&nbsp;</td><td class="memItemRight" valign="bottom"><b>trSysName</b> (const QString &amp;sname)</td></tr>

<tr><td colspan="2"><br><h2>Защищенные члены</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaARegister.html#9e9306712d40da2130341be6cb709f99">recalculate_saldo</a> (aSQLTable *t, aSQLTable *t_dim, const QDateTime &amp;dd, bool plus, long dimId, QVariant dimValue)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaARegister.html#3a65c9ea58fbba8d4178bd66611cde60">insert_values</a> (QSqlQuery *q, aSQLTable *t_dim, const QDateTime &amp;dd, bool plus, long dimId, QVariant dimValue)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaARegister.html#4259e5a60390881ed33600489b20ddca">update_values</a> (aSQLTable *t_dim, const QDateTime &amp;dd, bool plus, long dimId, QVariant dimValue, aSQLTable *t=0)</td></tr>

</table>
<hr><a name="_details"></a><h2>Подробное описание</h2>
Класс <a class="el" href="classaARegister.html" title="Класс aARegister определяет программный интерфейс...">aARegister</a> определяет программный интерфейс Накопительных регистров. Наследует <a class="el" href="classaIRegister.html" title="Класс aIRegister определяет программный интерфейс...">aIRegister</a>. 
<p>
Накопительный регистр расширяет функциональность информационного регистра <a class="el" href="classaIRegister.html" title="Класс aIRegister определяет программный интерфейс...">aIRegister</a>, автоматически расчитывая остатки по каждому измерению. В базе данных хранятся остатки по каждому измерению и на каждое время изменения значения ресурсов. Реквизиты накопительного регистра деляться на три вида: измерения, ресурсы, примечания. <dl class="see" compact><dt><b>См. также:</b></dt><dd><a class="el" href="classaIRegister.html" title="Класс aIRegister определяет программный интерфейс...">aIRegister</a> </dd></dl>
<hr><h2>Конструктор(ы)</h2>
<a class="anchor" name="4869ad4cddb196fb64e0d21e0876b4f2"></a><!-- doxytag: member="aARegister::aARegister" ref="4869ad4cddb196fb64e0d21e0876b4f2" args="(aCfgItem context, aDatabase *adb=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">aARegister::aARegister           </td>
          <td>(</td>
          <td class="paramtype">aCfgItem&nbsp;</td>
          <td class="paramname"> <em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classaDatabase.html">aDatabase</a> *&nbsp;</td>
          <td class="paramname"> <em>adb</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Конструктор, который создает объект по элементу метаданных.<p>
<dl compact><dt><b>Аргументы:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>- элемент конфигурации, </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>adb</em>&nbsp;</td><td>- ссылка на базу данных. </td></tr>
  </table>
</dl>

<p>Перекрестные ссылки <a class="el" href="aaregister_8cpp-source.html#l00111">initObject()</a>.</p>

</div>
</div><p>
<a class="anchor" name="b69abbbdeb2081b82c9dda996ec220ac"></a><!-- doxytag: member="aARegister::aARegister" ref="b69abbbdeb2081b82c9dda996ec220ac" args="(QString name, aDatabase *adb=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">aARegister::aARegister           </td>
          <td>(</td>
          <td class="paramtype">QString&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classaDatabase.html">aDatabase</a> *&nbsp;</td>
          <td class="paramname"> <em>adb</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Конструктор, который создает объект по имени рагистра остатков из конфигурации.<p>
<dl compact><dt><b>Аргументы:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>- имя регистра, заданное в конфигурации через Ананас-Дизайнер, </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>adb</em>&nbsp;</td><td>-</td></tr>
  </table>
</dl>
ссылка на базу данных. Необязательный параметр. Если не задан или задано нулевое значение, создавамый объект для работы с регистром не будет связан с базой данный. То есть объект не будет заполнен данными из регистра, хранящимися в базе данных, и все изменения, вносимые в него, не будут сохранены в базе данных. 
<p>Перекрестные ссылки <a class="el" href="aaregister_8cpp-source.html#l00111">initObject()</a>.</p>

</div>
</div><p>
<a class="anchor" name="5af43f6c4ed1fb604cb5be37f9dd6f24"></a><!-- doxytag: member="aARegister::~aARegister" ref="5af43f6c4ed1fb604cb5be37f9dd6f24" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">aARegister::~aARegister           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Деструктор. 
</div>
</div><p>
<hr><h2>Методы</h2>
<a class="anchor" name="6d53f11256cedc1dabea57ef788086cb"></a><!-- doxytag: member="aARegister::initObject" ref="6d53f11256cedc1dabea57ef788086cb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ERR_Code aARegister::initObject           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Инициализирует объект элементом конфигурации. В процесе инициализации выполняется настройка на таблицы базы данных. Этот метод вызывается конструктором.<p>
<dl class="return" compact><dt><b>Возвращает:</b></dt><dd>- код ошибки. </dd></dl>

<p>Переопределяет метод предка <a class="el" href="classaIRegister.html#858eb4881cbdf4a375aff4a400e8b731">aIRegister</a>.</p>

<p>Перекрестные ссылки <a class="el" href="acfg_8cpp-source.html#l00963">aCfg::attr()</a>, <a class="el" href="acfg_8cpp-source.html#l00471">aCfg::count()</a>, <a class="el" href="acfg_8cpp-source.html#l00520">aCfg::find()</a>, <a class="el" href="acfg_8cpp-source.html#l01220">aCfg::id()</a>, <a class="el" href="airegister_8cpp-source.html#l00114">aIRegister::initObject()</a>, <a class="el" href="alog_8cpp-source.html#l00058">aLog::print()</a>, <a class="el" href="aobject_8cpp-source.html#l00211">aObject::table()</a>, <a class="el" href="adatabase_8cpp-source.html#l00461">aDatabase::tableDbName()</a>, <a class="el" href="aobject_8cpp-source.html#l00240">aObject::tableInsert()</a> и <a class="el" href="asqltable_8h-source.html#l00058">aDataTable::tableName</a>.</p>

<p>Используется в <a class="el" href="aaregister_8cpp-source.html#l00051">aARegister()</a>.</p>

</div>
</div><p>
<a class="anchor" name="4e044a76fda2d164139be5c1a2ee6c7b"></a><!-- doxytag: member="aARegister::deleteDocument" ref="4e044a76fda2d164139be5c1a2ee6c7b" args="(aDocument *doc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool aARegister::deleteDocument           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classaDocument.html">aDocument</a> *&nbsp;</td>
          <td class="paramname"> <em>doc</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Удаляет все записи в регистре, ссылающиеся на досумент.<p>
<dl compact><dt><b>Аргументы:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>doc</em>&nbsp;</td><td>- документ для удаления </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Возвращает:</b></dt><dd>- false если в конфигурации отсутствует раздел регистров остатков или нет документа. </dd></dl>

<p>Переопределяет метод предка <a class="el" href="classaIRegister.html#dc3ed0d8c79ce343dc5addfca6c4e260">aIRegister</a>.</p>

<p>Перекрестные ссылки <a class="el" href="adatabase_8cpp-source.html#l00320">aDatabase::db()</a>, <a class="el" href="aobject_8cpp-source.html#l00932">aObject::getUid()</a>, <a class="el" href="alog_8cpp-source.html#l00058">aLog::print()</a>, <a class="el" href="aobject_8cpp-source.html#l00211">aObject::table()</a> и <a class="el" href="adocument_8cpp-source.html#l01508">aDocument::Value()</a>.</p>

<p>Используется в <a class="el" href="adocument_8cpp-source.html#l01323">aDocument::SignOut()</a>.</p>

</div>
</div><p>
<a class="anchor" name="b8f37888c1ea2f8957b5fd8e8fc9a93a"></a><!-- doxytag: member="aARegister::New" ref="b8f37888c1ea2f8957b5fd8e8fc9a93a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int aARegister::New           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual, slot]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Добавляет новую строку к таблице регистра. 
<p>
<dl class="return" compact><dt><b>Возвращает:</b></dt><dd>Код ошибки </dd></dl>
<dl class="see" compact><dt><b>См. также:</b></dt><dd><a class="el" href="classaIRegister.html#4ca72b23a10f72356cb0a4f75edb35f6" title="Отфильтровывает записи регистра, принадлежащие...">SetDocument( aDocument * doc )</a> <p>
<a class="el" href="classaIRegister.html#74c4d9268432d441550224de62b47a7f" title="Задает табличную часть документа для использования...">SetTable( const QString &amp; tblname )</a> </dd></dl>

<p>Переопределяет метод предка <a class="el" href="classaIRegister.html#fd7f97691de29e904b57a5749c716b50">aIRegister</a>.</p>

<p>Перекрестные ссылки <a class="el" href="adocument_8cpp-source.html#l00896">aDocument::getTable()</a>, <a class="el" href="aobject_8cpp-source.html#l00932">aObject::getUid()</a>, <a class="el" href="aobject_8cpp-source.html#l00496">aObject::New()</a>, <a class="el" href="aobject_8cpp-source.html#l00693">aObject::select()</a>, <a class="el" href="aobject_8cpp-source.html#l00211">aObject::table()</a>, <a class="el" href="aaregister_8cpp-source.html#l00211">Update()</a> и <a class="el" href="adocument_8cpp-source.html#l01508">aDocument::Value()</a>.</p>

</div>
</div><p>
<a class="anchor" name="7306f279c878bff4b1c158a43ef6445a"></a><!-- doxytag: member="aARegister::Update" ref="7306f279c878bff4b1c158a43ef6445a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int aARegister::Update           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual, slot]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Обновляет информацию в регитре. Все новые значения, заданные с помощью SetValue, сохраняются в базе данных. Выполняет пересчет остатков.<p>
<dl class="return" compact><dt><b>Возвращает:</b></dt><dd>- код ошибки. </dd></dl>

<p>Переопределяет метод предка <a class="el" href="classaObject.html">aObject</a>.</p>

<p>Перекрестные ссылки <a class="el" href="alog_8cpp-source.html#l00058">aLog::print()</a>, <a class="el" href="aobject_8cpp-source.html#l00211">aObject::table()</a> и <a class="el" href="adocument_8cpp-source.html#l01508">aDocument::Value()</a>.</p>

<p>Используется в <a class="el" href="aaregister_8cpp-source.html#l00176">New()</a>.</p>

</div>
</div><p>
<a class="anchor" name="8d8775b33b1b3e13a1e32c45fa49d868"></a><!-- doxytag: member="aARegister::getSaldo" ref="8d8775b33b1b3e13a1e32c45fa49d868" args="(const QDateTime &amp;date, const QString &amp;dimfieldname, QVariant dimvalue, const QString &amp;resname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QVariant aARegister::getSaldo           </td>
          <td>(</td>
          <td class="paramtype">const QDateTime &amp;&nbsp;</td>
          <td class="paramname"> <em>date</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&nbsp;</td>
          <td class="paramname"> <em>dimfieldname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">QVariant&nbsp;</td>
          <td class="paramname"> <em>dimvalue</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&nbsp;</td>
          <td class="paramname"> <em>resname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [slot]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Выбирает остаток на заданную дату-время. Выбирает остаток на заданную дату-время для одного (любого из заданных в регистре) аналитического разреза (измерения) с указанным значением. Проще говоря, метод позволяет получить, например, остаток по дебету или кредиту требуемого счета на требуемую дату, если регистр используется для хранения бухгалтерских проводок, в каждой из которых указывается один дебетуемый и один кредитуемый счет. <dl compact><dt><b>Аргументы:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date</em>&nbsp;</td><td>- дата, на которую требуется получить остаток. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dimfieldname</em>&nbsp;</td><td>- название аналитического разреза регистра. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dimvalue</em>&nbsp;</td><td>- значение (точка) аналитического разреза, для которого требуется определить остаток. Например для Аналитического разреза "Счет по дебету" значение может быть "41.1" или любой другой номер счета бухгалтерского плана счетов. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Возвращает:</b></dt><dd>возвращает значение остатка. </dd></dl>

<p>Перекрестные ссылки <a class="el" href="adatabase_8cpp-source.html#l00320">aDatabase::db()</a>, <a class="el" href="alog_8cpp-source.html#l00058">aLog::print()</a> и <a class="el" href="aobject_8cpp-source.html#l00211">aObject::table()</a>.</p>

<p>Используется в <a class="el" href="aaregister_8cpp-source.html#l00275">getSaldo()</a>.</p>

</div>
</div><p>
<a class="anchor" name="26a29b5bd623fe50c7e5499776e48bec"></a><!-- doxytag: member="aARegister::getSaldo" ref="26a29b5bd623fe50c7e5499776e48bec" args="(const QString &amp;dateISO, const QString &amp;dimfieldname, QVariant dimvalue, const QString &amp;resname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QVariant aARegister::getSaldo           </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&nbsp;</td>
          <td class="paramname"> <em>strdate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&nbsp;</td>
          <td class="paramname"> <em>dimfieldname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">QVariant&nbsp;</td>
          <td class="paramname"> <em>dimvalue</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&nbsp;</td>
          <td class="paramname"> <em>resname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [slot]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl class="see" compact><dt><b>См. также:</b></dt><dd><a class="el" href="classaARegister.html#8d8775b33b1b3e13a1e32c45fa49d868">getSaldo(const QDateTime &amp;date, const QString &amp; dimfieldname, QVariant dimvalue, const QString &amp;resname)</a></dd></dl>
Функция получения остатка. Вспомогательный метод. Служит для совместимости со скриптами.<p>
<dl compact><dt><b>Аргументы:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>strdate</em>&nbsp;</td><td>- дата, за которую надо получить остаток. Дата задается в виде строки в ISO формате. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dimfieldname</em>&nbsp;</td><td>- измерение, по которому нужно получить остаток </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dimvalue</em>&nbsp;</td><td>- значение измерения, по которому надо получить остаток </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>resname</em>&nbsp;</td><td>- ресурс, значение которого надо получить </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Возвращает:</b></dt><dd>- Значение остатка или QVariant::Invalid при ошибке или неправильных параметрах. </dd></dl>

<p>Перекрестные ссылки <a class="el" href="aaregister_8cpp-source.html#l00320">getSaldo()</a> и <a class="el" href="alog_8cpp-source.html#l00058">aLog::print()</a>.</p>

</div>
</div><p>
<a class="anchor" name="d91ce74807023d6216f923d70af1f0ee"></a><!-- doxytag: member="aARegister::getSaldoByManyDimensions" ref="d91ce74807023d6216f923d70af1f0ee" args="(const QString &amp;from, const QString &amp;to, const QString &amp;dimfieldname, QVariant dimvalue, const QString &amp;resname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QVariant aARegister::getSaldoByManyDimensions           </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&nbsp;</td>
          <td class="paramname"> <em>from</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&nbsp;</td>
          <td class="paramname"> <em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&nbsp;</td>
          <td class="paramname"> <em>dimfieldname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">QVariant&nbsp;</td>
          <td class="paramname"> <em>dimvalue</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&nbsp;</td>
          <td class="paramname"> <em>resname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [slot]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Вычисляет сумму за определенный период. Выбирает сумму для одного (минимум) аналитического разреза (измерения) с указанным значением. Если необходимо сальдо по нескольким измерениям, установите по ним фильтры <dl class="see" compact><dt><b>См. также:</b></dt><dd><a class="el" href="classaIRegister.html#30e0ea946c6323954c16416e0a385bf0" title="Устанавливает фильтр на записи регистра.">aIRegister::SetFilter()</a> </dd></dl>
<dl compact><dt><b>Аргументы:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>from</em>&nbsp;</td><td>- дата начала периода. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>to</em>&nbsp;</td><td>- дата окончания периода. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dimfieldname</em>&nbsp;</td><td>- название аналитического разреза регистра. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dimvalue</em>&nbsp;</td><td>- значение (точка) аналитического разреза, для которого требуется определить остаток. Например для Аналитического разреза "Счет по дебету" значение может быть "41.1" или любой другой номер счета бухгалтерского плана счетов. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Возвращает:</b></dt><dd>возвращает значение остатка. </dd></dl>

<p>Перекрестные ссылки <a class="el" href="adatabase_8cpp-source.html#l00320">aDatabase::db()</a>, <a class="el" href="alog_8cpp-source.html#l00058">aLog::print()</a> и <a class="el" href="aobject_8cpp-source.html#l00211">aObject::table()</a>.</p>

</div>
</div><p>
<a class="anchor" name="9e9306712d40da2130341be6cb709f99"></a><!-- doxytag: member="aARegister::recalculate_saldo" ref="9e9306712d40da2130341be6cb709f99" args="(aSQLTable *t, aSQLTable *t_dim, const QDateTime &amp;dd, bool plus, long dimId, QVariant dimValue)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void aARegister::recalculate_saldo           </td>
          <td>(</td>
          <td class="paramtype">aSQLTable *&nbsp;</td>
          <td class="paramname"> <em>t_dim</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">aSQLTable *&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QDateTime &amp;&nbsp;</td>
          <td class="paramname"> <em>dd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>plus</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>dimId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">QVariant&nbsp;</td>
          <td class="paramname"> <em>dimValue</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Выбирает запись в таблице остатков с заданной датой, если ее нет, то создает новую. После этого вызывает функцию для обновления значений остатков.<p>
<dl compact><dt><b>Аргументы:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>t_dim</em>&nbsp;</td><td>- таблица остатков для обновления </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>- таблица оборотов с выбранной записью, из которой берутся значения </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dd</em>&nbsp;</td><td>- дата, с которой пересчитаются остатки. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>plus</em>&nbsp;</td><td>- true для новой записи, false для удаления записи. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dimId</em>&nbsp;</td><td>- id поля измерения в метаданных </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dimValue</em>&nbsp;</td><td>- значение поля измерения в метаданных </td></tr>
  </table>
</dl>

<p>Перекрестные ссылки <a class="el" href="adatabase_8cpp-source.html#l00320">aDatabase::db()</a>, <a class="el" href="aaregister_8cpp-source.html#l00501">insert_values()</a> и <a class="el" href="aaregister_8cpp-source.html#l00543">update_values()</a>.</p>

</div>
</div><p>
<a class="anchor" name="3a65c9ea58fbba8d4178bd66611cde60"></a><!-- doxytag: member="aARegister::insert_values" ref="3a65c9ea58fbba8d4178bd66611cde60" args="(QSqlQuery *q, aSQLTable *t_dim, const QDateTime &amp;dd, bool plus, long dimId, QVariant dimValue)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int aARegister::insert_values           </td>
          <td>(</td>
          <td class="paramtype">QSqlQuery *&nbsp;</td>
          <td class="paramname"> <em>q</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">aSQLTable *&nbsp;</td>
          <td class="paramname"> <em>t_dim</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QDateTime &amp;&nbsp;</td>
          <td class="paramname"> <em>dd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>plus</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>dimId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">QVariant&nbsp;</td>
          <td class="paramname"> <em>dimValue</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Добавляет запись в таблицу остатков.<p>
<dl compact><dt><b>Аргументы:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>q</em>&nbsp;</td><td>- запрос с данными для добавления. Если q!=0, то данные из q попадут в добавляемую строку </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>t_dim</em>&nbsp;</td><td>- таблица остатков </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dd</em>&nbsp;</td><td>- дата, с которой пересчитаются остатки. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>plus</em>&nbsp;</td><td>- true для новой записи, false для удаления записи. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dimId</em>&nbsp;</td><td>- id поля измерения в метаданных </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dimValue</em>&nbsp;</td><td>- значение поля измерения в метаданных </td></tr>
  </table>
</dl>

<p>Перекрестные ссылки <a class="el" href="adatabase_8cpp-source.html#l00320">aDatabase::db()</a>.</p>

<p>Используется в <a class="el" href="aaregister_8cpp-source.html#l00460">recalculate_saldo()</a>.</p>

</div>
</div><p>
<a class="anchor" name="4259e5a60390881ed33600489b20ddca"></a><!-- doxytag: member="aARegister::update_values" ref="4259e5a60390881ed33600489b20ddca" args="(aSQLTable *t_dim, const QDateTime &amp;dd, bool plus, long dimId, QVariant dimValue, aSQLTable *t=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int aARegister::update_values           </td>
          <td>(</td>
          <td class="paramtype">aSQLTable *&nbsp;</td>
          <td class="paramname"> <em>t_dim</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QDateTime &amp;&nbsp;</td>
          <td class="paramname"> <em>dd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>plus</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>dimId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">QVariant&nbsp;</td>
          <td class="paramname"> <em>dimValue</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">aSQLTable *&nbsp;</td>
          <td class="paramname"> <em>t</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Обновляет записи в таблице остатков с датой, большей или равной заданной.<p>
<dl compact><dt><b>Аргументы:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>t_dim</em>&nbsp;</td><td>- таблица остатков для обновления </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>- таблица оборотов с выбранной записью, из которой берутся значения </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dd</em>&nbsp;</td><td>- дата, с которой пересчитаются остатки. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>plus</em>&nbsp;</td><td>- true для новой записи, false для удаления записи. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dimId</em>&nbsp;</td><td>- id поля измерения в метаданных </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dimValue</em>&nbsp;</td><td>- значение поля измерения в метаданных </td></tr>
  </table>
</dl>

<p>Перекрестные ссылки <a class="el" href="adatabase_8cpp-source.html#l00320">aDatabase::db()</a>.</p>

<p>Используется в <a class="el" href="aaregister_8cpp-source.html#l00460">recalculate_saldo()</a>.</p>

</div>
</div><p>
<hr>Объявления и описания членов классов находятся в файлах:<ul>
<li><a class="el" href="aaregister_8h-source.html">aaregister.h</a><li>aaregister.cpp</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Документация по Ananas Library. Последние изменения: Sun Feb 1 21:47:14 2009. Создано системой&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
